What are Java features for macros iterating private fields and comparing static strings